package edu.seu.mart.dao;

import edu.seu.mart.entity.Pager;

import java.util.List;
import java.util.Map;

/**
 * Created by samsung on 2015/3/8.
 */
public interface IBaseDao<T> {
    /**
     * 添加对象
     */
    public void add(T t);
    /**
     * 更新对象
     */
    public void update(T t);
    /**
     * 根据id删除对象
     */
    public void delete(int id);
    /**
     * 根据id加载对象
     */
    public T load(int id);
    /**
     * 不分页列表对象
     */
    public List<T> list(String hql, Map<String, Object> alias, Object ...args);
    public List<T> list(String hql, Object ...args);
    /**
     * 分页列表对象
     */
    public Pager<T> find(String hql, Map<String, Object> alias, Object ...args);
    public Pager<T> find(String hql, Object ...args);
    /**
     * 不分页列表对象(SQL查询)
     */
    public List<T> listBySql (String sql, Map<String, Object> alias, Class<?> clazz, boolean hasEntity, Object ...args);
    public List<T> listBySql (String sql, Class<?> clazz, boolean hasEntity, Object ...args);
    /**
     * 分页列表对象（SQL查询） 
     */
    public Pager<T> findBySql (String sql, Map<String, Object> alias, Class<?> clazz, boolean hasEntity, Object ...args);
    public Pager<T> findBySql (String sql, Class<?> clazz, boolean hasEntity, Object ...args);
}
